package com.sojson.result.interfaces;

import com.sojson.config.exception.TransErrorCode;
import com.sojson.config.exception.TransException;

/**
 * 返回数据信息工具类接口
 * 
 * @author liu
 * @date 2020-11-02
 */
public interface ResponseDataUtilsInterface {

    /**
     * 返回数据
     * 
     * @return 
     */
    Object success();

    /**
     * 返回数据(将对象转为字符串)
     * 
     * @return 
     */
    String successToString();

    /**
     * 返回数据(加密对象)
     * 
     * @return 
     */
    String successAndEncryption();

    /**
     * 返回数据(带Key加密对象)
     * 
     * @param key 密钥
     * @return 
     */
    String successAndEncryption(String key);

    /**
     * 返回数据
     * 
     * @param object 要返回的数据
     * @return
     */
    Object success(Object object);

    /**
     * 返回数据(将对象转为字符串)
     * 
     * @param object 要返回的数据
     * @return
     */
    String successToString(Object object);

    /**
     * 返回数据(加密对象)
     * 
     * @param object 要返回的数据
     * @return
     */
    String successAndEncryption(Object object);

    /**
     * 返回数据(带Key加密对象)
     * 
     * @param object 要返回的数据
     * @param key 密钥
     * @return
     */
    String successAndEncryption(Object object, String key);

    /**
     * 返回错误信息
     * 
     * @return
     */
    Object error();

    /**
     * 返回错误信息(将对象转为字符串)
     * 
     * @return
     */
    String errorToString();

    /**
     * 返回错误信息(加密对象)
     * 
     * @return
     */
    String errorAndEncryption();

    /**
     * 返回错误信息(带Key加密对象)
     * 
     * @param key 密钥
     * @return
     */
    String errorAndEncryption(String key);

    /**
     * 返回错误信息
     * 
     * @param menu 要返回的错误信息
     * @return
     */
    Object error(TransErrorCode menu);

    /**
     * 返回错误信息(将对象转为字符串)
     * 
     * @param menu 要返回的错误信息
     * @return
     */
    String errorToString(TransErrorCode menu);

    /**
     * 返回错误信息(加密对象)
     * 
     * @param menu 要返回的错误信息
     * @return
     */
    String errorAndEncryption(TransErrorCode menu);

    /**
     * 返回错误信息(带Key加密对象)
     * 
     * @param menu 要返回的错误信息
     * @param key 密钥
     * @return
     */
    String errorAndEncryption(TransErrorCode menu, String key);

    /**
     * 返回错误信息
     * 
     * @param transException
     * @return
     */
    Object error(TransException transException);

    /**
     * 返回错误信息(将对象转为字符串)
     * 
     * @param transException
     * @return
     */
    String errorToString(TransException transException);

    /**
     * 返回错误信息(加密对象)
     * 
     * @param transException
     * @return
     */
    String errorAndEncryption(TransException transException);

    /**
     * 返回错误信息(带Key加密对象)
     * 
     * @param transException
     * @param key 密钥
     * @return
     */
    String errorAndEncryption(TransException transException, String key);

}